import { defineStore } from 'pinia';

interface Plot {
    customerId: string; // 客户号码
    frontId: number;   // 前端维护号
    isForbid: number;   // 是否禁止 0 启动 1 禁止
    plotType: number;   // 策略类型 1 篮子交易 5 可转债抢单
    isAutoCtrl: number; // 是否有自动撤单功能, 默认允许自动撤单, 值为1
    isCtrlStop: number; // 撤单后策略是否停止 0 继续 1停止
    isUpperStop: number; // 涨停打开后是否继续买 0 停止 1继续
    beginTime: string | number;   // 开始时间HHMMSSsss
    endTime: string | number;   // 结束时间HHMMSSsss
    userInfo: number;   // 客户端自定义数据
    ctrlUpRatio: number; // 允许自动撤单时, 每次撤单后在封单金额上增加对应比例
    slipBuyTimes: number;
    slipSellTimes: number;
}

interface Setting {
    plotid: number; // 策略编号 修改时必须带上
    market: number; // 市场 1 sh 2 sz
    securityId: string; // 证券代码
    bsType: number; // 买卖方向
    conPx: number; // 条件价格
    ordPx: number; // 委托价格
    qtyType: number; // 数量类型
    ordQty: number; // 委托数量
    money: number; // 委托金额
    askQty: number; // 卖一未成交量
    cdl: number;   // 买一撤单率
    buyMoney: number; // 封单金额
    buyCtrlMoney: number; // 封单不足撤单金额
    sign: number; // 标识 0 抢板 1 低吸 2 半路
    kpzf: number; // 开盘涨幅
    upperQtyMulty: number; // 涨停卖与昨日倍量
    upperQtyMultyMin: number; // 涨停卖与前五分钟倍量
    nxtCtrlMoney: number; //允许自动撤单时, 涨停后一分钟成交金额达到自动撤单, 为0时不控制
    followCtrlMoney: number; // 允许自动撤单时, 涨停后连续两分钟成交金额达到自动撤单, 为0时不控制
}

export interface StrategyForm {
    setting: Setting,
    plot: Plot
    
}

export const useStrategyStore = defineStore("strategyStore", {
    state: () => {
        return {
            strategy: {} as StrategyForm
        }
    },
    actions: [
        
        //添加策略时，默认数据从sqlite中拿取
        //修改策略时,直接从返回中拿取
        //提交策略
        //查询策略，查询本地缓存中数据
        //更新策略列表,websocket数据队列更新本地缓存

    ]

})